package com.tally.common.constant;

/**
 * 通用常量信息
 * @author soul
 */
public class Constants
{
    public static final String APPLICATION_JSON_UTF8_VALUE = "application/json;charset=utf-8";

    /**
     * UTF-8 字符集
     */
    public static final String UTF8 = "UTF-8";

    /**
     * GBK 字符集
     */
    public static final String GBK = "GBK";

    /**
     * http请求
     */
    public static final String HTTP = "http://";

    /**
     * https请求
     */
    public static final String HTTPS = "https://";

    /**
     * 通用成功标识
     */
    public static final String SUCCESS = "0";

    /**
     * 通用失败标识
     */
    public static final String FAIL = "1";

    /**
     * 登录成功
     */
    public static final String LOGIN_SUCCESS = "Success";

    /**
     * 注销
     */
    public static final String LOGOUT = "Logout";

    /**
     * 注册
     */
    public static final String REGISTER = "Register";

    /**
     * 登录失败
     */
    public static final String LOGIN_FAIL = "Error";

    /**
     * 当前记录起始索引
     */
    public static final String PAGE_NUM = "pageNum";

    /**
     * 每页显示记录数
     */
    public static final String PAGE_SIZE = "pageSize";

    /**
     * 排序列
     */
    public static final String ORDER_BY_COLUMN = "orderByColumn";

    /**
     * 排序的方向 "desc" 或者 "asc".
     */
    public static final String IS_ASC = "isAsc";

    /**
     * 系统用户授权缓存
     */
    public static final String SYS_AUTH_CACHE = "sys-authCache";

    /**
     * 参数管理 cache name
     */
    public static final String SYS_CONFIG_CACHE = "sys-config";

    /**
     * 参数管理 cache key
     */
    public static final String SYS_CONFIG_KEY = "sys_config:";

    /**
     * 字典管理 cache name
     */
    public static final String SYS_DICT_CACHE = "sys-dict";

    /**
     * 字典管理 cache key
     */
    public static final String SYS_DICT_KEY = "sys_dict:";

    /**
     * 资源映射路径 前缀
     */
    public static final String RESOURCE_PREFIX = "/profile";

    /**
     * RMI 远程方法调用
     */
    public static final String LOOKUP_RMI = "rmi://";

    /**
     * LDAP 远程方法调用
     */
    public static final String LOOKUP_LDAP = "ldap://";

    /**
     * 定时任务违规的字符
     */
    public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
            "org.springframework.jndi" };

    /** 账号状态：已作废 */
    public static int DISABLED = 0;
    /** 账号状态：正常 */
    public static int VALID = 1;
    /** 账号状态：锁定 */
    public static int LOCKED = 2;

    /** 缓存验证码：邮箱登陆 */
    public static String  CACHE_LOGIN_EMAIL = "login_email_";
    /** 缓存验证码：手机登陆 */
    public static String  CACHE_LOGIN_PHONE = "login_phone_";
    /** 缓存验证码：注册 */
    public static String CACHE_REGISTER = "register_";
    /** 缓存验证码：忘记密码 */
    public static String CACHE_FORGET = "forget_";

    /**
     * 缓存验证码类型
     * @param flag 0.注册 1.找回密码、更改密码 2.邮件登陆 3.手机登陆
     * @return
     */
    public static String getCacheCaptchaType(int flag){
        String cache = "";
        switch (flag){
            case 0:
                cache =  CACHE_REGISTER;
                break;
            case 1:
                cache =  CACHE_FORGET;
                break;
            case 2:
                cache =  CACHE_LOGIN_EMAIL;
                break;
            case 3:
                cache =  CACHE_LOGIN_PHONE;
                break;
            default:
                break;
        }

        return cache;
    }

}
